package exception;
/**
 * 异常的抛出
 * @author Xiloer
 *
 */
public class Person {
	private int age;

	public int getAge() {
		return age;
	}
	/**
	 * throw关键字用于主动对外抛出一个异常
	 * 通常以下两种情况会主动抛出异常:
	 * 1:满足语法，但是不满足业务逻辑要求(当前案例就是这个情况)。
	 * 2:当前方法确实执行时出现了异常，但是当前方法不应该处理这个异常时，
	 *   可以抛出给调用当前方法的代码片段去处理。
	 * @param age
	 * @throws Exception 
	 */
	public void setAge(int age) throws IllegalAgeException {
		if(age<0||age>100) {
			/*
			 * 当我们使用throw抛出一个异常时(除了RuntimeException及其子类型
			 * 异常)编译器要求我们必须处理该异常。而这里处理异常的方式就是在
			 * 当前方法上使用throws声明该异常的抛出
			 */
			throw new IllegalAgeException("年龄不合法!");
		}
		this.age = age;
	}
	
	
}





